API Documentation
Buffer.h
1 // Buffer.h
3 //
5 
6 namespace nkMemory
7 {
12  {
13  unsigned char* _data ;
14  unsigned long long _size ;
15  } ;
16 }
17 
18 namespace nkMemory
19 {
31  class Buffer final
32  {
33  public :
34 
35  // Constructors, destructor
39  Buffer () ;
46  Buffer (unsigned long long size) ;
53  Buffer (unsigned char* data, unsigned long long size) ;
60  Buffer (const Buffer& other) ;
67  Buffer (Buffer&& other) ;
72  ~Buffer () ;
73 
74  // Getters
78  unsigned char* getData () const ;
82  unsigned long long getSize () const ;
86  bool empty () const ;
90  unsigned char& front () ;
94  const unsigned char& front () const ;
98  unsigned char& back () ;
102  const unsigned char& back () const ;
106  unsigned char* begin () ;
110  const unsigned char* begin () const ;
114  unsigned char* end () ;
118  const unsigned char* end () const ;
119 
120  // Management
124  void clear () ;
131  void resize (unsigned long long size) ;
139  unsigned char& append (unsigned char value) ;
147  unsigned char& append (unsigned char value) ;
155  BufferInfo relinquishDataOwnership () ;
156 
157  // Operators
164  unsigned char& operator[] (unsigned long long index) ;
171  const unsigned char& operator[] (unsigned long long index) const ;
172 
179  Buffer& operator= (const Buffer& other) ;
187 
188  public :
189 
190  // Constructors templated
196  template <typename T, std::size_t S>
197  Buffer (const std::array<T, S>& array) ;
198 
204  template <typename T>
205  Buffer (const std::vector<T>& vec) ;
206 
207  public :
208 
209  // Memory ownership taking constructors
221  static Buffer createAndTakeMemory (unsigned char* data, unsigned long long size) ;
222  } ;
223 }
nkMemory::Buffer::getData
unsigned char * getData() const
nkMemory::Buffer::operator[]
unsigned char & operator[](unsigned long long index)
nkMemory::Buffer::resize
void resize(unsigned long long size)
nkMemory::Buffer::begin
const unsigned char * begin() const
nkMemory::Buffer::end
unsigned char * end()
nkMemory::Buffer::Buffer
Buffer(const std::vector< T > &vec)
nkMemory::Buffer::Buffer
Buffer(unsigned long long size)
nkMemory::Buffer::createAndTakeMemory
static Buffer createAndTakeMemory(unsigned char *data, unsigned long long size)
nkMemory::BufferDataDescriptor::_size
unsigned long long _size
The size, in bytes, of the data pointed.
Definition: Buffer.h:14
nkMemory::Buffer::front
const unsigned char & front() const
nkMemory::Buffer::Buffer
Buffer()
nkMemory::BufferDataDescriptor::_data
unsigned char * _data
The data pointer.
Definition: Buffer.h:13
nkMemory::Buffer::~Buffer
~Buffer()
nkMemory::Buffer::relinquishDataOwnership
BufferInfo relinquishDataOwnership()
nkMemory::Buffer
A buffer holding binary data.
Definition: Buffer.h:32
nkMemory::Buffer::Buffer
Buffer(Buffer &&other)
nkMemory::Buffer::end
const unsigned char * end() const
nkMemory::Buffer::back
unsigned char & back()
nkMemory::BufferDataDescriptor
Describes the data held by a buffer.
Definition: Buffer.h:12
nkMemory::Buffer::getSize
unsigned long long getSize() const
nkMemory::Buffer::Buffer
Buffer(const Buffer &other)
nkMemory::Buffer::clear
void clear()
nkMemory::Buffer::append
unsigned char & append(unsigned char value)
nkMemory::Buffer::front
unsigned char & front()
nkMemory::Buffer::begin
unsigned char * begin()
nkMemory::Buffer::empty
bool empty() const
nkMemory::Buffer::Buffer
Buffer(unsigned char *data, unsigned long long size)
nkMemory::Buffer::back
const unsigned char & back() const
nkMemory::Buffer::operator=
Buffer & operator=(const Buffer &other)
nkMemory::Buffer::Buffer
Buffer(const std::array< T, S > &array)
nkMemory
Encompasses all API of component NilkinsMemory.
Definition: Allocator.h:7